
package com.nanyang.tms.api.dto.request.companydeclare;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.nanyang.common.core.domain.ApiRequest;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * <p>Description:(企业常用报关信息)</p>
 * 
 * @author
 * @date 2020年12月23日 下午5:13:25
 * @Copyright Copyright (c) 2020 www.rongetong.cn Inc. All rights reserved.
 */
@Data
public class CompanyDeclareUpdateRequest extends ApiRequest {
	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = 1L;

	@JsonIgnore
	private String pin;
	/**
	 * 报关信息编码
	 */
	@NotEmpty(message = "报关信息编码不能为空")
	@Length(max = 32, message = "declareCode度需小于32个字符")
	private String declareCode;

	/**
	 * 企业编码
	 */
	@JsonIgnore
	private String companyCode;

	/**
	 * sku
	 */
	@NotEmpty(message = "sku不能为空")
	@Length(max = 30, message = "sku长度需小于30个字符")
	private String sku;

	/**
	 * 英文名称
	 */
	@NotEmpty(message = "英文名称不能为空")
	@Length(max = 100, message = "nameEn长度需小于100个字符")
	private String nameEn;

	/**
	 * 中文品名
	 */
	@NotEmpty(message = "中文品名不能为空")
	@Length(max = 50, message = "nameCn长度需小于50个字符")
	private String nameCn;

	/**
	 * 数量
	 */
	@NotNull(message = "数量不能为空")
	private Integer quantity;

	/**
	 * 单价（usd）
	 */
	@NotNull(message = "单价（usd）不能为空")
	private BigDecimal price;

	/**
	 * 单位编码
	 */
	@NotEmpty(message = "单位编码不能为空")
	@Length(max = 20, message = "unitCode长度需小于20个字符")
	private String unitCode;

	/**
	 * 单位名称
	 */
	@NotEmpty(message = "单位名称不能为空")
	@Length(max = 30, message = "unitName长度需小于30个字符")
	private String unitName;

	/**
	 * 总价值
	 */
	@NotNull(message = "总价值不能为空")
	private BigDecimal totalPrice;

	/**
	 * 商品单重
	 */
	@NotNull(message = "商品单重不能为空")
	private BigDecimal weight;

	/**
	 * 海关编号
	 */
	@Length(max = 50, message = "customsNo长度需小于50个字符")
	private String customsNo;

	/**
	 * 备货备注
	 */
	@Length(max = 200, message = "remark长度需小于200个字符")
	private String remark;

	/**
	 * 商品图片url
	 */
	@Length(max = 500, message = "imageUrl长度需小于500个字符")
	private String imageUrl;

	/**
	 * 销售地址
	 */
	@Length(max = 100, message = "saleSite长度需小于100个字符")
	private String saleSite;

	/**
	 * 材质
	 */
	@Length(max = 30, message = "material长度需小于30个字符")
	private String material;

	/**
	 * 规则型号
	 */
	@Length(max = 30, message = "ruleModel长度需小于30个字符")
	private String ruleModel;

	/**
	 * 用途
	 */
	@Length(max = 30, message = "purpose长度需小于30个字符")
	private String purpose;

	/**
	 * 品牌
	 */
	@Length(max = 30, message = "brand长度需小于30个字符")
	private String brand;

	/**
	 * 行邮税号
	 */
	@Length(max = 30, message = "postalTax长度需小于30个字符")
	private String postalTax;

	@Override
	public void requestCheck() {

	}

}
